package com.lik888.web1.config;


import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.Caffeine;
import com.lik888.web1.entity.GoodsTable;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.concurrent.TimeUnit;

@Configuration
public class CaffeineGoodsTableConfig {


    @Bean
    public Cache<String, GoodsTable> caffeineGoodsTableCache() {
        return Caffeine.newBuilder()
                .initialCapacity(100)
                .maximumSize(10_000)
                .expireAfterWrite(10, TimeUnit.MINUTES)
                .build();
    }

// GET方法
//    caffeineCache.getIfPresent("key");
//    caffeineCache.get("key", k -> "defaultValue //可添加数据库业务逻辑"); // 如果缓存中不存在key，则返回默认值"defaultValue"
    // 第一次查询了key，缓存中不存在，会执行lambda表达式，将"defaultValue"放入缓存中
    // 第二次查询了key，缓存中存在，直接返回"defaultValue"
}
